
#ifndef IServiceProvider_h
#define IServiceProvider_h

#include <System/Object.h>

namespace Riccsson
{
	namespace System
	{
		// Summary:
		//     Defines a mechanism for retrieving a service object; that is, an object that
		//     provides custom support to other objects.
		interface IServiceProvider
		{
			// Summary:
			//     Gets the service object of the specified type.
			//
			// Parameters:
			//   serviceType:
			//     An object that specifies the type of service object to get.
			//
			// Returns:
			//     A service object of type serviceType.-or- null if there is no service object
			//     of type serviceType.
			public: virtual GC_PTR<object> GetService(Type* serviceType) = 0;
		};
	}
}

#endif